package org.lyfeng.spring.beans.factory.config;

/**
 * bean注册接口
 * @author leiyufeng
 * 2013-4-22 下午3:05:29
 */
public interface SingletonBeanRegistry {
	/**
	 * 注册一个实例bean
	 * @param beanName
	 * @param singletonObject
	 */
	void registerSingleton(String beanName, Object singletonObject);
	/**
	 * 获取bean
	 * @param beanName
	 * @return
	 */
	Object getSingleton(String beanName);
	/**
	 * 判断是否包含一个bean实例
	 * @param beanName
	 * @return
	 */
	boolean containsSingleton(String beanName);
	/**
	 * 获取容器中所有的bean
	 * @return
	 */
	String[] getSingletonNames();
	/**
	 * bean数量
	 * @return
	 */
	int getSingletonCount();
	/**
	 * 注册一个bean的依赖关系
	 * @param beanName
	 * @param dependentName
	 */
	void registerDependentBean(String beanName,String dependentName);
	/**
	 * 销毁bean
	 * @param beanName
	 */
	void destroyBean(String beanName);
}
